home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
tool
/
checker
/
checker.bas
next >
Wrap
BASIC Source File
|
1995-08-19
|
16KB
|
456 lines
1000 '==========================================================='
1010 ' FileSelecter -12DotFontVersion- by K.T '
1020 '==========================================================='
1030 CLEAR ,,512,500000,,1500000
1040 DEFINT A-Z : DEF FONT "システム 12ドット"
1050 SCREEN@0:SCREEN 1,0,3,0:SCREEN@0:COLOR 2,0:CLS:PALETTE
1060 WINDOW(0,0)-(1023,511) : VIEW(0,0)-(1023,511)
1070 DIM OBJ1(5),OBJ2(5),OBJ3(5),OBJ4(5)
1080 DIM EGB(7775*2),FS&(1),TN$(3),OBJ(7775*2),MEM(75)
1090 DIM DAT$(9999),BUF(0),TXT$(9999)
1100 MOUSE 0 : MOUSE 4,0,0,1023,511:'OUT &H440,27:OUT&H442,&H11
1110 ON ERROR GOTO *ERROR
1120 '
1130 FX=0:FY=0:MAX=640:MAY=480:SC_SW=15:光=7:面=14:影=SC_SW-光
1140 TX=140:TY=10:TBAN=0
1150 FOR I=0 TO 5:READ DAT$:OBJ1(I)=VAL("&H"+DAT$)-&H8000:NEXT
1160 FOR I=0 TO 5:READ DAT$:OBJ2(I)=VAL("&H"+DAT$)-&H8000:NEXT
1170 FOR I=0 TO 5:READ DAT$:OBJ3(I)=VAL("&H"+DAT$)-&H8000:NEXT
1180 FOR I=0 TO 5:READ DAT$:OBJ4(I)=VAL("&H"+DAT$)-&H8000:NEXT
1190 FOR I=0 TO 3:READ DAT$:TN$(I)=DAT$:NEXT
1200 GOSUB *SET_PAL
1210 DRIVE=INP(&H3B30)
1220 '
1230 WHILE -1
1240 GET@A(FX,FY)-(FX+142,FY+215),OBJ
1250 FILE_NAME$="" : GOSUB *FILESEL
1260 PUT@A(FX,FY)-(FX+142,FY+215),OBJ
1270 IF FILE_NAME$="" AND TFLG=0 THEN END
1280 IF MID$(FILE_NAME$,10,3)="TIF" THEN GOSUB *TIF_LOAD
1290 IF MID$(FILE_NAME$,10,3)="JPG" THEN GOSUB *JPG_LOAD
1300 IF MID$(FILE_NAME$,10,3)="EUP" THEN GOSUB *EUP_LOAD
1310 IF MID$(FILE_NAME$,10,3)="FMB" THEN GOSUB *MUS_LOAD
1320 IF MID$(FILE_NAME$,10,3)="PMB" THEN GOSUB *MUS_LOAD
1330 IF MID$(FILE_NAME$,10,3)="SND" THEN GOSUB *SND_LOAD
1340 IF MID$(FILE_NAME$,10,3)="MVE" THEN GOSUB *MVE_LOAD
1350 IF MID$(FILE_NAME$,10,3)="MMM" AND TFLG=0 THEN GOSUB *MMM_LOAD
1360 IF TFLG=1 THEN GOTO 1450
1370 IF MID$(FILE_NAME$,10,3)="TXT" THEN GOSUB *TXT_LOAD
1380 IF MID$(FILE_NAME$,10,3)="GGG" THEN GOSUB *TXT_LOAD
1390 IF MID$(FILE_NAME$,10,3)="DOC" THEN GOSUB *TXT_LOAD
1400 IF MID$(FILE_NAME$,10,3)="MML" THEN GOSUB *TXT_LOAD
1410 IF MID$(FILE_NAME$,10,3)="MAN" THEN GOSUB *TXT_LOAD
1420 IF MID$(FILE_NAME$,10,3)="BAT" THEN GOSUB *TXT_LOAD
1430 IF MID$(FILE_NAME$,10,3)="CFG" THEN GOSUB *TXT_LOAD
1440 '
1450 影=SC_SW-光
1460 IF TFLG=1 THEN RETURN
1470 WEND
1480 '
1490 *TIF_LOAD
1500 IF SC_SW=255 THEN SCREEN@0
1510 SCREEN 1,1,3,0:SW=0
1520 LOAD@FILE_NAME$,MEM
1530 IF MEM(75)=15 THEN
1540 SCREEN@0:SC_SW=15:SW=1
1550 WINDOW(0,0)-(1023,511):VIEW(0,0)-(1023,511)
1560 ENDIF
1570 IF MEM(75)=255 AND TFLG=0 THEN
1580 SCREEN 0:SC_SW=255:SW=1:SCREEN@2
1590 WINDOW(0,0)-(1023,511):VIEW(0,0)-(1023,511)
1600 ENDIF
1610 IF MEM(75)=32767 THEN
1620 SCREEN@1:SC_SW=15:SW=1
1630 WINDOW(0,0)-(511,255):VIEW(0,0)-(511,255)
1640 ENDIF
1650 IF SW<>0 THEN LOAD@FILE_NAME$
1660 IF SC_SW<>255 THEN SCREEN 1,0,3,0
1670 RETURN
1680 '
1690 *JPG_LOAD
1700 IF SC_SW=255 THEN SCREEN@0
1710 SCREEN 1,1,3,0:SCREEN@1
1720 WINDOW(0,0)-(511,255):VIEW(0,0)-(511,255)
1730 LOAD@FILE_NAME$
1740 SCREEN 1,0,3,0:SCREEN@0:SC_SW=15
1750 RETURN
1760 '
1770 *EUP_LOAD
1780 FILES FILE_NAME$,N,DAT$
1790 SIZ&=VAL(MID$(DAT$(1),13,14))
1800 ERASE BUF:DIM BUF(SIZ&\2)
1810 LOAD@FILE_NAME$,BUF
1820 PLAY OFF:PLAY@BUF
1830 RETURN
1840 '
1850 *MUS_LOAD
1860 LOAD@FILE_NAME$
1870 RETURN
1880 '
1890 *SND_LOAD
1900 FILES FILE_NAME$,N,DAT$
1910 SIZ&=VAL(MID$(DAT$(1),13,14))
1920 ERASE BUF:DIM BUF(SIZ&\2)
1930 LOAD@FILE_NAME$,BUF
1940 PCMPLAY BUF,127
1950 RETURN
1960 '
1970 *MVE_LOAD
1980 IF SC_SW=255 THEN SCREEN@0
1990 SCREEN 1,1,3,0:SCREEN@1
2000 WINDOW(0,0)-(511,255):VIEW(0,0)-(511,255)
2010 PLAY OFF
2020 MOVIE OPEN FILE_NAME$
2030 'DEF MOVIE 2,0
2040 MOVIE PLAY
2050 MOVIE CLOSE
2060 SCREEN 1,0,3,0:SCREEN@0:SC_SW=15
2070 RETURN
2080 '
2090 *MMM_LOAD
2100 SCREEN 0:SC_SW=255:SCREEN@2
2110 WINDOW(0,0)-(1023,511):VIEW(0,0)-(1023,511)
2120 PLAY OFF
2130 MOVIE OPEN FILE_NAME$
2140 MOVIE PLAY
2150 MOVIE CLOSE
2160 RETURN
2170 '
2180 *TXT_LOAD
2190 IF SC_SW=255 THEN SCREEN@0
2200 SCREEN 1,0,3,0:SCREEN@0:SC_SW=15:影=SC_SW-光
2210 OPEN "I",#1,FILE_NAME$
2220 FOR I=0 TO 9999:MAX_I=I
2230 INPUT #1,TXT$(I)
2240 NEXT
2250 CLOSE #1
2260 GOSUB *TXT_MAKE
2270 MOUSE 1,,,1:K$=""
2280 WHILE K$<>CHR$(&H1B)
2290 K$=INKEY$
2300 X=MOUSE(0):Y=MOUSE(1)
2310 XX=X:YY=Y:SX=1:SY=1:GOSUB *SCREEN_MOVE
2320 IF MOUSE(2,1)<0 THEN TFLG=1:GOSUB 1240
2330 IF K$=CHR$(&H1E) THEN TBAN=TBAN-35:GOSUB *TXT_MOVE
2340 IF K$=CHR$(&H1F) THEN TBAN=TBAN+35:GOSUB *TXT_MOVE
2350 WEND
2360 CLS:TFLG=0:MOUSE 1,,,0
2370 RETURN
2380 '
2390 *TXT_MOVE
2400 IF TBAN<0 THEN BEEP:TBAN=TBAN+35:RETURN
2410 IF TBAN>=MAX_I THEN BEEP:TBAN=TBAN-35:RETURN
2420 LINE(TX+1 ,TY+16)-(TX+6*80+1 ,TY+12*35+17),PSET,%光,BF
2430 IF TBAN+34>MAX_I THEN K=MAX_I MOD 35 ELSE K=34
2440 FOR I=0 TO K
2450 SYMBOL(TX+2,I*12+TY+17),TXT$(TBAN+I),3/4,3/4,%影
2460 NEXT
2470 GOSUB *TXT_BAR
2480 RETURN
2490 '
2500 *FILESEL
2510 GOSUB *FILESEL_W
2520 END_FLG=0:MOUSE 1,,,1
2530 WHILE END_FLG=0
2540 PUSH=0
2550 WHILE PUSH=0
2560 PUSH=MOUSE(2,0)
2570 IF MOUSE(2,1)<0 THEN GOSUB *SET_PAL
2580 X=MOUSE(0):Y=MOUSE(1)
2590 XX=X:YY=Y:SX=1:SY=1:GOSUB *SCREEN_MOVE
2600 WEND
2610 X=X-FX : Y=Y-FY
2620 IF X> 3 AND Y> 16 AND X< 13 AND Y< 36 THEN GOSUB *LEFT_DR '
2630 IF X> 13 AND Y> 17 AND X< 32 AND Y< 35 THEN GOSUB *SET_DR '
2640 IF X> 32 AND Y> 16 AND X< 42 AND Y< 36 THEN GOSUB *RIGHT_DR '
2650 IF X> 2 AND Y> 36 AND X<121 AND Y<197 THEN GOSUB *GET_FILE '
2660 IF X>125 AND Y> 36 AND X<141 AND Y< 46 THEN GOSUB *UP_VER '
2670 IF X>127 AND Y> 49 AND X<139 AND Y<183 THEN GOSUB *VER_MOVE '
2680 IF X>125 AND Y>186 AND X<141 AND Y<197 THEN GOSUB *DOWN_VER '
2690 IF X> 79 AND Y>199 AND X<110 AND Y<214 THEN GOSUB *FILE_RUN '
2700 IF X>110 AND Y>199 AND X<141 AND Y<214 THEN GOSUB *FILE_CAN
2710 IF X>= 0 AND Y>= 0 AND X<143 AND Y< 15 THEN GOSUB *F_MOVE
2720 *END
2730 WEND
2740 MOUSE 1,,,0
2750 RETURN
2760 '
2770 *F_MOVE
2780 LINE(FX,FY+14)-(FX+142,FY+14),PSET,%面,B
2790 MOUSE 4,X,Y,1023-142+X,511-215+Y
2800 GET@A(FX,FY)-(FX+142,FY+215),EGB
2810 LINE(FX-1,FY-1)-STEP(144,217),XOR,,B
2820 XZ=FX:YZ=FY
2830 WHILE PUSH=-1
2840 HX=XZ : HY=YZ
2850 WHILE XZ=HX AND YZ=HY AND PUSH=-1
2860 XZ=MOUSE(0)-X
2870 YZ=MOUSE(1)-Y
2880 PUSH=MOUSE(2,0)
2890 WEND
2900 LINE(HX-1,HY-1)-STEP(144,217),XOR,,B
2910 LINE(XZ-1,YZ-1)-STEP(144,217),XOR,,B
2920 XX=XZ:YY=YZ:SX=143:SY=216:GOSUB *SCREEN_MOVE
2930 WEND
2940 LINE(XZ-1,YZ-1)-STEP(144,217),XOR,,B
2950 PUT@A(FX,FY)-(FX+142,FY+215),OBJ
2960 FX=XZ : FY=YZ
2970 GET@A(FX,FY)-(FX+142,FY+215),OBJ
2980 PUT@A(FX,FY)-(FX+142,FY+215),EGB
2990 MOUSE 4,0,0,1023,511
3000 LINE(FX,FY+14)-(FX+142,FY+14),PSET,%影,B
3010 RETURN
3020 '
3030 *LEFT_DR
3040 LINE(FX+4,FY+17)-STEP(8,18),XOR,,B
3050 WHILE MOUSE(2,0):WEND
3060 LINE(FX+4,FY+17)-STEP(8,18),XOR,,B
3070 SW=-1 : DRIVE=DRIVE+SW
3080 IF DRIVE=64 THEN DRIVE=81
3090 R_SW=0:GOSUB *DRIVE_W
3100 RETURN *END
3110 '
3120 *SET_DR
3130 LINE(FX+14,FY+18)-STEP(17,16),XOR,,B
3140 WHILE MOUSE(2,0):WEND
3150 LINE(FX+14,FY+18)-STEP(17,16),XOR,,B
3160 FBAN=0:R_SW=1:GOSUB *FILE_W
3170 RETURN *END
3180 '
3190 *RIGHT_DR
3200 LINE(FX+33,FY+17)-STEP(8,18),XOR,,B
3210 WHILE MOUSE(2,0):WEND
3220 LINE(FX+33,FY+17)-STEP(8,18),XOR,,B
3230 SW=1 : DRIVE=DRIVE+SW
3240 IF DRIVE=82 THEN DRIVE=65
3250 R_SW=0:GOSUB *DRIVE_W
3260 RETURN *END
3270 '
3280 *GET_FILE
3290 IF FS&(1)=0 OR R_SW=0 THEN RETURN *END
3300 BAN=(Y-37)\16
3310 IF FS&(1)<BAN+1 THEN RETURN *END
3320 LINE(FX+3,FY+37+BAN*16)-STEP(120,15),XOR,,B
3330 WHILE MOUSE(2,0):WEND
3340 LINE(FX+3,FY+37+BAN*16)-STEP(120,15),XOR,,B
3350 IF MID$(DAT$(BAN+FBAN),13,3)="DIR" THEN *DIR_CHANGE ELSE *FILE_SET
3360 RETURN *END
3370 '
3380 *DIR_CHANGE
3390 DR$=MID$(DAT$(BAN+FBAN),1,8)
3400 FOR I=8 TO 2 STEP -1
3410 IF MID$(DR$,I,1)=" " THEN DR$=MID$(DR$,1,I-1) ELSE I=2
3420 NEXT
3430 SHELL "CD "+DR$
3440 FBAN=0:GOSUB *FILE_W
3450 RETURN *END
3460 '
3470 *FILE_SET
3480 IF FILE_NAME$=MID$(DAT$(BAN+FBAN),1,12) THEN END_FLG=1
3490 FILE_NAME$=MID$(DAT$(BAN+FBAN),1,12)
3500 LINE(FX+4,FY+199)-STEP(72,13),PSET,%面,BF
3510 SYMBOL(FX+5,FY+200),FILE_NAME$,3/4,3/4,%光
3520 RETURN *END
3530 '
3540 *UP_VER
3550 IF FBAN=0 OR R_SW=0 THEN RETURN *END
3560 LINE(FX+126,FY+37)-STEP(14,9),XOR,,B
3570 GET@A(FX+2,FY+37)-(FX+121,FY+180),EGB
3580 PUT@A(FX+2,FY+53)-(FX+121,FY+196),EGB
3590 LINE(FX+4,FY+38)-STEP(118,13),PSET,%面,BF
3600 SYMBOL(FX+11,FY+39),DAT$(FBAN-1),3/4,3/4,%影
3610 SYMBOL(FX+10,FY+39),DAT$(FBAN-1),3/4,3/4,%光
3620 FBAN=FBAN-1 : GOSUB *VER_W
3630 LINE(FX+126,FY+37)-STEP(14,9),XOR,,B
3640 RETURN *END
3650 '
3660 *DOWN_VER
3670 IF FBAN+11>FS&(1) OR R_SW=0 THEN RETURN *END
3680 LINE(FX+126,FY+187)-STEP(14,9),XOR,,B
3690 GET@A(FX+2,FY+53)-(FX+121,FY+196),EGB
3700 PUT@A(FX+2,FY+37)-(FX+121,FY+180),EGB
3710 LINE(FX+4,FY+182)-STEP(118,13),PSET,%面,BF
3720 SYMBOL(FX+11,FY+183),DAT$(FBAN+10),3/4,3/4,%影
3730 SYMBOL(FX+10,FY+183),DAT$(FBAN+10),3/4,3/4,%光
3740 FBAN=FBAN+1 : GOSUB *VER_W
3750 LINE(FX+126,FY+187)-STEP(14,9),XOR,,B
3760 RETURN *END
3770 '
3780 *VER_MOVE
3790 IF RBAN+11>FS&(1) OR R_SW=0 THEN RETURN *END
3800 Y=Y-50 : FBAN=Y*(FS&(1)-9)\133
3810 GOSUB *FILE_PUT
3820 GOSUB *VER_W
3830 RETURN *END
3840 '
3850 *FILE_RUN
3860 IF R_SW=0 THEN RETURN *END
3870 LINE(FX+80,FY+200)-STEP(29,13),XOR,,B
3880 END_FLG=1 : WHILE MOUSE(2,0):WEND
3890 LINE(FX+80,FY+200)-STEP(29,13),XOR,,B
3900 RETURN *END
3910 '
3920 *FILE_CAN
3930 IF R_SW=0 THEN RETURN *END
3940 LINE(FX+111,FY+200)-STEP(29,13),XOR,,B
3950 FILE_NAME$="":END_FLG=1:WHILE MOUSE(2,0):WEND
3960 LINE(FX+111,FY+200)-STEP(29,13),XOR,,B
3970 RETURN *END
3980 '
3990 *LINE_BOX
4000 LINE(FX+XX ,FY+YY )-STEP(SX ,SY ),PSET,%光,B
4010 LINE(FX+XX+1,FY+YY+1)-STEP(SX-1,SY-1),PSET,%影,B
4020 LINE(FX+XX+1,FY+YY+1)-STEP(SX-2,SY-2),PSET,%面,BF
4030 RETURN
4040 '
4050 *DRIVE_W
4060 FILE_NAME$=""
4070 LINE(FX+4,FY+199)-STEP(72,13),PSET,%面,BF '選択ファイルの消去
4080 SHELL CHR$(DRIVE)+":"
4090 LINE(FX+15,FY+20)-STEP(15,13),PSET,%面,BF '選択ドライブの消去
4100 SYMBOL(FX+18,FY+21),AKCNV$(CHR$(DRIVE)),3/4,3/4,%光 'ドライブの表示
4110 FR$=STR$(DSKF(DRIVE-65))
4120 LINE(FX+77,FY+20)-STEP(48,12),PSET,%面,BF '残り容量
4130 SYMBOL(FX+70,FY+21),SPACE$(9-LEN(FR$))+FR$,3/4,3/4,%光
4140 FOR I=0 TO 9
4150 LINE(FX+4,FY+38+I*16)-STEP(113,13),PSET,%面,BF
4160 NEXT
4170 IF R_SW=1 THEN GOSUB *FILE_W
4180 RETURN
4190 '
4200 *FILE_W
4210 IF FR$="Error" THEN GOTO 4260
4220 FILES CHR$(DRIVE)+":",C,FS&
4230 'ERASE DAT$ : DIM DAT$(FS&(1))
4240 FILES CHR$(DRIVE)+":",N,DAT$
4250 GOSUB *DATA_CNV
4260 GOSUB *FILE_PUT
4270 GOSUB *VER_W
4280 RETURN
4290 '
4300 *FILE_PUT
4310 FOR I=0 TO 9
4320 LINE(FX+4,FY+38+I*16)-STEP(113,13),PSET,%面,BF
4330 IF I+FBAN<FS&(1) THEN
4340 SYMBOL(FX+11,FY+39+I*16),DAT$(I+FBAN),3/4,3/4,%影
4350 SYMBOL(FX+10,FY+39+I*16),DAT$(I+FBAN),3/4,3/4,%光
4360 ENDIF
4370 NEXT
4380 IF FS&(1)=0 THEN SYMBOL(FX+10,FY+39),"< File Not Found >",3/4,3/4,%光
4390 RETURN
4400 '
4410 *VER_W
4420 IF FS&(1)<10 THEN FLG=10 ELSE FLG=FS&(1)
4430 Y1=133*FBAN/FLG : Y2=133*(FBAN+10)/FLG
4440 LINE(FX+127,FY+49)-STEP(12,135),PSET,%面,BF
4450 XX=128:YY=50+Y1:SX=10:SY=Y2-Y1:GOSUB *LINE_BOX
4460 RETURN
4470 '
4480 *DATA_CNV
4490 FOR I=1 TO FS&(1)
4500 IF MID$(DAT$(I),20,3)="DIR" THEN GOSUB *D_CNV ELSE GOSUB *F_CNV
4510 NEXT
4520 RETURN
4530 '
4540 *D_CNV
4550 DAT$(I-1)=MID$(DAT$(I),1,8)+" << DIR >>"
4560 RETURN
4570 '
4580 *F_CNV
4590 CNT=0
4600 DAT$(I-1)=MID$(DAT$(I),1,8)+"."+MID$(DAT$(I),10,3)
4610 SIZ&=VAL(MID$(DAT$(I),13,14))
4620 FOR J=3 TO 1 STEP -1
4630 IF 1024^J<SIZ& THEN SIZ&=SIZ&\1024:CNT=CNT+1
4640 NEXT
4650 IF SIZ&>999 THEN CNT=CNT+1:SIZ&=1
4660 DAT$(I-1)=DAT$(I-1)+SPACE$(4-LEN(STR$(SIZ&)))+STR$(SIZ&)+TN$(CNT)
4670 RETURN
4680 '
4690 *SCREEN_MOVE
4700 OUT &H440,17
4710 IF XX+SX>MAX THEN OUT &H442,(XX+SX-640)\8
4720 IF XX<MIX THEN OUT &H442,XX\8
4730 IF YY+SY>MAY THEN OUT &H443,(YY+SY-480)\2
4740 IF YY<MIY THEN OUT &H443,YY\2
4750 OUT &H440,21
4760 IF XX+SX>MAX THEN OUT &H442,(XX+SX-640)\8:MAX=XX+SX :MIX=XX+SX-640
4770 IF XX<MIX THEN OUT &H442,XX\8 :MIX=XX :MAX=MIX+640
4780 IF YY+SY>MAY THEN OUT &H443,(YY+SY-480)\2:MAY=YY+SY :MIY=YY+SY-480
4790 IF YY<MIY THEN OUT &H443,YY\2 :MIY=YY :MAY=MIY+480
4800 RETURN
4810 '
4820 *SET_PAL
4830 PALETTE 光,[16*14,16*14,16*14]
4840 PALETTE 影,[16* 3,16* 3,16* 3]
4850 PALETTE 面,[16* 8,16* 7,16*12]
4860 RETURN
4870 '
4880 *FILESEL_W
4890 RESTORE *座標デ-タ
4900 FOR I=1 TO 12
4910 READ XX,YY,SX,SY : GOSUB *LINE_BOX
4920 NEXT
4930 LINE(FX+76,FY+19)-STEP(50,14),XOR,,B
4940 FOR I=0 TO 16*10-1 STEP 16
4950 XX= 3 : YY=37+I: SX=120 : SY= 15 : GOSUB *LINE_BOX 'ファイル名
4960 NEXT
4970 LINE(FX+126,FY+48)-STEP(14,137),XOR,,B
4980 LINE(FX+3,FY+198)-STEP(75,15),XOR,,B
4990 SYMBOL(FX+ 2,FY+ 1),"FileSelecter by K.T",3/4,3/4,%光,,,1
5000 SYMBOL(FX+45,FY+21)," Free KB",3/4,3/4,%光',,,1
5010 PUT@(FX+ 5,FY+ 21)-(FX+ 10,FY+ 31),OBJ1
5020 PUT@(FX+ 35,FY+ 21)-(FX+ 40,FY+ 31),OBJ2
5030 PUT@(FX+128,FY+ 39)-(FX+138,FY+ 44),OBJ3
5040 PUT@(FX+128,FY+189)-(FX+138,FY+194),OBJ4
5050 SYMBOL(FX+85,FY+201),"RUN",3/4,3/4,%光,,,1
5060 SYMBOL(FX+116,FY+201),"CAN",3/4,3/4,%光,,,1
5070 R_SW=1:GOSUB *DRIVE_W
5080 RETURN
5090 '
5100 *TXT_MAKE
5110 LINE(TX, TY )-(TX+6*80+15,TY+12*35+18),PSET,%影,BF
5120 LINE(TX+1 ,TY+1 )-(TX+75 ,TY+14),PSET,%影,BF
5130 LINE(TX+76 ,TY+1 )-(TX+6*80+14,TY+14),PSET,%面,BF
5140 LINE(TX+1 ,TY+16)-(TX+6*80+1 ,TY+12*35+17),PSET,%光,BF
5150 SYMBOL(TX+2,TY+2),FILE_NAME$,3/4,3/4,%光
5160 '
5170 K=35:GOSUB *TXT_BAR
5180 IF MAX_I>35 THEN K=35 ELSE K=MAX_I
5190 FOR I=0 TO K-1
5200 SYMBOL(TX+2,I*12+TY+17),TXT$(I),3/4,3/4,%影
5210 NEXT
5220 RETURN
5230 '
5240 *TXT_BAR
5250 IF MAX_I<35 THEN I=35 ELSE I=MAX_I
5260 Y1=12*35*TBAN/I : Y2=12*35*(TBAN+K)/I
5270 LINE(TX+6*80+3,TY+16)-(TX+6*80+14,TY+12*35+17),PSET,%影,BF
5280 '
5290 LINE(TX+6*80+4,TY+17+Y1)-(TX+6*80+14,TY+Y2+17),PSET,%面,BF
5300 LINE(TX+6*80+4,TY+17+Y1)-(TX+6*80+14,TY+Y2+17),PSET,%影,B
5310 LINE(TX+6*80+3,TY+16+Y1)-(TX+6*80+13,TY+Y2+16),PSET,%光,BF
5320 RETURN
5330 '
5340 *ERROR
5350 IF ERL=1650 OR ERL=1730 THEN RESUME NEXT 'フルカラ-は非対応
5360 IF ERL=2010 THEN RESUME 2060 'DLL領域が足りない
5370 IF ERL=2130 THEN RESUME 2160 'DLL領域が足りない
5380 IF ERL=2230 THEN MAX_I=I:I=9999:RESUME NEXT
5390 IF ERL=1800 THEN RESUME 1830 'メモリ不足
5400 IF ERL=1810 THEN RESUME NEXT '音源ファイルが見つからなかった
5410 IF ERL=4080 AND ERR=60 THEN DRIVE=DRIVE+SW:RESUME *DRIVE_W
5420 IF ERL=4110 AND ERR=72 THEN BEEP:FS&(1)=0:FR$="Error":RESUME NEXT
5430 IF ERL=4240 THEN RESUME 4260
5440 SCREEN 0:COLOR 2:PRINT "エラーが発生しちゃった",ERR;"番";ERL;"行"
5450 '
5460 DATA 8C04,BC1C,7C7C,BC7C,8C1C,8004,4080,70E0,7CF8,70F8,40E0,8080
5470 DATA 8004,800E,801F, 3F,407F,60FF,60FF,407F, 3F,801F,800E,8004
5480 DATA " B","KB","MB","GB"
5490 '
5500 *座標デ-タ
5510 DATA 0, 0,142, 14, 0, 15,142,200, 4, 17, 8, 18, 14, 18, 17, 16
5520 DATA 33, 17, 8, 18, 76, 19, 50, 14,126, 37, 14, 9,126, 48, 14,137
5530 DATA 126,187, 14, 9, 3,198, 75, 15, 80,200, 29, 13,111,200, 29, 13
5540 '